Система блочного шифрування S-DES

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2012
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Криптологія

Частина тексту файла

Міністерство освіти і науки, молоді та спорту України Національний університет «Львівська Політехніка» Звіт Про виконання лабораторної роботи №2 з курсу «Прикладна криптологія» на тему «Система блочного шифрування S-DES» Перевірив: Петришин А.В. Львів – 2012 Мета: Створити просту криптографічну систему на основі спрощеного блочного алгоритму Simple DES (S-DES) та дослідити її роботу. Завдання: Створити просту криптографічну систему на основі спрощеного блочного алгоритму S-DES. Код програми на мові JavaScript: <html><head><title>Lab2</title></head><body><form name="data"> Текст:<input type="text" name="text"> <span id="1"></span><br> Ключ:<input type="text" name="key"> <span id="2"></span><br> <input type="button" value="Encrypt" onclick="Encrypt();"> <input type="button" value="Decrypt" onclick="Decrypt();"> </form><script> function Encrypt(){var text=document.data.text.value; var span1=document.getElementById("1");var span2=document.getElementById("2"); var K1=""; var K2=""; var K=""; var K=document.data.key.value; if (!K) for(i=0;i<10;i++) K+=Math.round(Math.random()); span2.innerHTML=K;K1=P8(Zsuv(P10(K)));K2=P8(Zsuv(Zsuv(Zsuv(P10(K))))); text=IP(text);text=F(text,K1);text=F(text,K2);text=IP_1(text); span1.innerHTML=text;} function Decrypt(){var text=document.data.text.value; var span1=document.getElementById("1");var span2=document.getElementById("2"); var K1=""; var K2=""; var K=""; var K=document.data.key.value; span2.innerHTML=K;K1=P8(Zsuv(P10(K)));K2=P8(Zsuv(Zsuv(Zsuv(P10(K))))); text=IP(text);text=F_1(text,K2);text=F_1(text,K1);text=IP_1(text); span1.innerHTML=text;} function F(t,Ki){var L=""; var R=""; var LR=""; for(i=0;i<4;i++) {L+=t.charAt(i)+""; R+=t.charAt(i+4)+"";} LR= (R.charAt(3)*1+Ki.charAt(0)*1)%2+""+(R.charAt(0)*1+Ki.charAt(1)*1)%2+""+ (R.charAt(1)*1+Ki.charAt(2)*1)%2+""+(R.charAt(2)*1+Ki.charAt(3)*1)%2+""+ (R.charAt(1)*1+Ki.charAt(4)*1)%2+""+(R.charAt(2)*1+Ki.charAt(5)*1)%2+""+ (R.charAt(3)*1+Ki.charAt(6)*1)%2+""+(R.charAt(0)*1+Ki.charAt(7)*1)%2+""; var S0="1032321002133131"; var S1="1123201330102103"; var a=0; a=1*S0.charAt((LR.charAt(0)*2+LR.charAt(3)*1)*4+(LR.charAt(1)*2+LR.charAt(2)*1)*1); S0=((a-(a%2))/2)+""+(a%2)+""; a=1*S1.charAt((LR.charAt(4)*2+LR.charAt(7)*1)*4+(LR.charAt(5)*2+LR.charAt(6)*1)*1); S1=((a-(a%2))/2)+""+(a%2)+""; LR=S0+""+S1+"";t="";for(i=0;i<4;i++) t+=R.charAt(i)+""; for(i=0;i<4;i++) t+=((L.charAt(i)*1)+(LR.charAt(i)*1))%2+"";return t;} function F_1(t,Ki){var L=""; var R=""; var LR=""; for(i=0;i<4;i++) {L+=t.charAt(i)+""; R+=t.charAt(i+4)+"";} LR= (L.charAt(3)*1+Ki.charAt(0)*1)%2+""+(L.charAt(0)*1+Ki.charAt(1)*1)%2+""+ (L.charAt(1)*1+Ki.charAt(2)*1)%2+""+(L.charAt(2)*1+Ki.charAt(3)*1)%2+""+ (L.charAt(1)*1+Ki.charAt(4)*1)%2+""+(L.charAt(2)*1+Ki.charAt(5)*1)%2+""+ (L.charAt(3)*1+Ki.charAt(6)*1)%2+""+(L.charAt(0)*1+Ki.charAt(7)*1)%2+""; var S0="1032321002133131"; var S1="1123201330102103"; var a=0; a=1*S0.charAt((LR.charAt(0)*2+LR.charAt(3)*1)*4+(LR.charAt(1)*2+LR.charAt(2)*1)*1); S0=((a-(a%2))/2)+""+(a%2)+""; a=1*S1.charAt((LR.charAt(4)*2+LR.charAt(7)*1)*4+(LR.charAt(5)*2+LR.charAt(6)*1)*1); S1=((a-(a%2))/2)+""+(a%2)+""; LR=S0+""+S1+"";t="";for(i=0;i<4;i++) t+=((R.charAt(i)*1)+(LR.charAt(i)*1))%2+""; for(i=0;i<4;i++) t+=L.charAt(i)+"";return t;} function IP(b){var a="";a+=b.charAt(1)+b.charAt(5)+b.charAt(2)+b.charAt(0)+ b.charAt(3)+b.charAt(7)+b.charAt(4)+b.charAt(6);return a;} function IP_1(b){var a="";a+=b.charAt(3)+b.charAt(0)+b.charAt(2)+b.charAt(4)+ b.charAt(6)+b.charAt(1)+b.charAt(7)+b.charAt(5);return a;} function P10(a){var b="";b+=a.charAt(2)+a.charAt(4)+a.charAt(1)+a.charAt(6)+a.charAt(3)+ a.charAt(9)+a.charAt(0)+a.charAt(8)+a.charAt(7)+a.charAt(5);return b;} function Zsuv(a){var b="";b+=a.charAt(1)+a.charAt(2)+a.charAt(3)+a.charAt(4)+a.charAt(0)+ a.charAt(6)+a.charAt(7)+a.charAt(8)+a.charAt(9)+a.charAt(5);return b;} function P8(a){var b="";b+=a.charAt(5)+a.charAt(2)+a.charAt(6)+a.ch...
Антиботан аватар за замовчуванням

24.01.2013 00:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини